/**
 * #info
 *
 *@author   zhengshundong
 *@createTime   2018/03/20
 *@updateTime   2019/11/20
 *@description  badge  component 标记组件
 */

/**
 * #item
 *
 * @type        aty-badge
 * @cn            标记
 * @menu        数据
 * @stPlugin    true
 * @stContainer true
 * @description  徽标控件
 */
// 扩展属性
/**
 * #extendproperty
 *
 * @name    slot
 * @cn      slot插槽
 * @options [default]
 * @type    list
 * @description  default插槽，用于默认插入文件内容等
 */
import config from '../../../config/config.js'
// prefix
const prefixCls = config.prefix + '-badge'
// module
const module = {
  name: prefixCls,
  components: {},
  props: {
    /**
     * #property
     *
     * @name    count
     * @cn      显示的数字
     * @type    string,number
     * @description 显示的数字，大于overflowCount时，显示${overflowCount}+
     */
    count: [Number, String],
    /**
     * #property
     *
     * @name    dot
     * @cn      是否不展示数字，只有一个小红点
     * @type    boolean
     * @value   false
     * @description 不展示数字，只有一个小红点
     */
    dot: {
      type: Boolean,
      default: false
    },
    /**
     * #property
     *
     * @name    hidden
     * @cn      是否隐藏
     * @type    boolean
     * @value   false
     * @description 是否隐藏
     */
    hidden: {
      type: Boolean,
      default: false
    },
    /**
     * #property
     *
     * @name    overflowCount
     * @cn      展示封顶的数字值
     * @type    string,number
     * @value   99
     * @description 展示封顶的数字值
     */
    overflowCount: {
      type: [Number, String],
      default: 99
    },
    /**
     * #property
     *
     * @name    className
     * @cn      自定义的class名称
     * @type    string
     * @description 自定义的class名称
     */
    className: String
  },
  computed: {
    content() {
      if (this.dot) return;

      const value = parseInt(this.count);
      const max = parseInt(this.overflowCount);

      if (typeof value === 'number' && typeof max === 'number') {
        return max < value ? `${max}+` : value;
      }

      return value;
    }
  }
}
export default module
